package com.dingwen.treasure.jpa.service;





import com.dingwen.treasure.model.entity.jpa.QuartzInfo;
import org.springframework.data.domain.Example;

import java.util.List;
import java.util.Optional;

/**
 * 定时任务信息服务
 *
 * @author dingwen
 * @date 2022/03/13
 */
public interface QuartzInfoService {

    /**
     * 找到所有任务信息
     *
     * @param quartzInfoExample quartzInfoExample
     * @return {@link List}<{@link QuartzInfo}>
     */
    List<QuartzInfo> findAll(Example<QuartzInfo> quartzInfoExample);


    /**
     * 拯救
     * 保存
     *
     * @param quartzInfo 任务信息
     * @return {@link QuartzInfo}
     */
    QuartzInfo save(QuartzInfo quartzInfo);


    /**
     * 成功增量
     *
     * @param id 定时任务 id
     */
    void incrementForSuccess(Long id);

    /**
     * 失败增量
     *
     * @param id 定时任务 id
     */
    void incrementForFail(Long id);

    /**
     *  根据任务 id 查询该任务是否存在
     * @param id
     * @return
     */
    Optional<QuartzInfo> findById(Long id);


    /**
     * 按id删除
     *
     * @param id 定时任务主键
     */
    void deleteById(Long id);


    /**
     * 按id更新
     *
     * @param quartzInfo 任务信息
     */
    void updateById(QuartzInfo quartzInfo);



}
